package datatypes.r2.foundation.impl;

import datatypes.r2.flavors.ST_SIMPLE;
import datatypes.r2.foundation.DSET;
import datatypes.r2.quantities.INT;
import datatypes.r2.quantities.impl.IntegerNumber;

/**
 * An unordered collection of values that contains discrete distinct values.
 * 
 * A DSET differs from the general SET because it is constrained to contain only
 * discrete items. The practical consequence of this is that a DSET can be
 * iterated, like bag, but unlike QSET.
 * 
 * @author Obama
 * 
 * @param <T>
 */
public class DiscreteSet<T> extends Set<T> implements DSET<T> {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	@Override
	public INT count() {
		
		return new IntegerNumber(getSet().size());
	}

	@Override
	public ST_SIMPLE literal() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public DSET<T> promotion(T x) {
		// TODO Auto-generated method stub
		return null;
	}

}
